#include "../../include/Utils/CountdownTool.h"
#include <iostream>
CountdownTool::CountdownTool(int seconds) : remaining(seconds), finished(false)
{
    timer.set_wait_time(1000);    // 每 1000 ms 触发一次
    timer.set_one_shot(false);    // 非单次触发
    timer.set_callback
        ([this]()   // this此处指就是以下函数内容
            {
                if (remaining > 0) {
                    // 每秒打印当前剩余秒数（从 seconds 到 1）
                    std::cout << remaining << "s" << std::endl;
                    --remaining;
                    if (remaining == 0) {
                        // 倒计时完成，暂停定时器并标记完成
                        finished = true;
                        timer.pause();
                        std::cout << "倒计时结束" << std::endl;
                    }
                }
            }
        );
}

void CountdownTool::start() {
    // 重置内部计时器状态并开始
    timer.restart();
    finished = false;
}

void CountdownTool::on_update(int delta) {
    timer.on_update(delta);
}

bool CountdownTool::is_finished()const {
    return finished;
}